package br.com.fiap.trabalho.junit;

import java.util.List;

import org.junit.Test;

import br.com.fiap.trabalho.dao.CategoryDAO;
import br.com.fiap.trabalho.entity.Category;
import br.com.fiap.trabalho.factory.DaoFactory;

public class JPACategoryDAOTestMetric extends DAOtest{
	
	private static CategoryDAO categoryDAO = DaoFactory.getDaoFactory(DaoFactory.JPA).getCategoryDAO();
	
	public void createEntity() {

		for(int i = 0; i < numberOfIteractions; i++){
			
			Category category = new Category();
			category.setName("Terror"+i);
			
			categoryDAO.createCategory(category);
		}

		System.out.println("Tempo para criar entidades Category JPA: ");
	}

	public void listEntity() {

		categoryDAO.selectCategories(numberOfIteractions);
		
		System.out.println("Tempo para Listar entidades Category JPA: ");
		
	}

	public void updateEntity() {
		
		List<Category> categoriesForUpdate = categoryDAO.selectCategories(numberOfIteractions);
		
		int i = 0;
		for(Category category : categoriesForUpdate){
			
			category.setName("Teste Update CategoryDAO"+i);
			
			categoryDAO.createCategory(category);
			i++;
		}
		
		System.out.println("Tempo para Update entidades Category JPA: ");
		
	}

	@Test
	public void getCategoriesWithMovie() {
		
		List<Category> categoriesWithMovie = categoryDAO.selectCategories(numberOfIteractions);

		for(Category category : categoriesWithMovie){
			
			categoryDAO.selectCategoryByName(category.getName());
		}
		
		System.out.println("Tempo para Listar categories with Movie JPA: ");
	}
}
